String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
};

function nextPart(current) {
	switch (current) {
	case '0': return 'x';
	case 'x': return 'y';
	case 'y': return 'z';
	case 'z': return 'rx';
	case 'rx': return 'ry';
	case 'ry': return 'rz';
	case 'rz': return 'm';
	case 'm': return 's';
	case 's': return 'dn';
	case 'dn': return 'fr';
	case 'fr': return 'ing';
	case 'ing': return 'as';
	case 'as': return 'i';
	case 'i': return 'error';
	default: return "error";
	}	
}

function nextJoint(current) {
	switch (current) {
	case '0': return 'p1';
	case 'p1': return 'p2';
	case 'p2': return 'rx';
	case 'rx': return 'ry';
	case 'ry': return 'rz';
	case 'rz': return 'dx';
	case 'dx': return 'dy';
	case 'dy': return 'dz';
	case 'dz': return 'stif';
	case 'stif': return 'rotstif';
	case 'rotstif': return 'stam';
	case 'stam': return 'i';
	case 'i': return 'error';
	default: return "error";
	}	
}

function nextNeuron(current) {
	switch (current) {
	case '0': return 'p';
	case 'p': return 'j';
	case 'j': return 'd';
	case 'd': return 'i';
	case 'i': return 'error';
	default: return "error";
	}	
}


function nextNeuronInput(current) {
	switch (current) {
	case '0': return 'n';
	case 'n': return 'i';
	case 'i': return 'w';
	case 'w': return 'error';
	default: return "error";
	}	
}